2025.5.16 行列の正定性判別
対称行列$ Aについて、
全ての固有値がゼロ以上であれば正定値行列である。
全ての固有値がゼロ以下であれば負定値行列である。
NumPy版
code:正定性の判別.py
import numpy as np
def is_symmetric(X):
return np.array_equal(X, X.T)
def is_positive_definite(X):
eigs = np.linalg.eigvalsh(X)
print(eigs)
return np.all(eigs > 0).item()
A = np.array(5,2,4],2,14,10,[4,10,10, dtype=float)
print(A)
print(is_symmetric(A))
print(is_positive_definite(A))
PyTorch版
code:p1.py
import torch as pt
def is_symmetric(X):
return pt.equal(X, X.T)
def is_positive_definite(X):
eigs = pt.linalg.eigvalsh(X)
print(eigs)
return pt.all(eigs > 0).item()
A = pt.tensor(5,2,4],2,14,10,[4,10,10, dtype=pt.float)
print(A)
print(is_symmetric(A))
print(is_positive_definite(A))